home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / amos / PrgCollection.lha / DualPlayfieldDemo.AMOS / DualPlayfieldDemo.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1994-03-12  |  1.9 KB  |  55 lines

  1. ' *************************************
  2. ' *                                   *
  3. ' *      Dual Playfield Demo V1.0     *
  4. ' *      Written by Chris Hodges      *
  5. ' *                                   *
  6. ' *************************************
  7. '
  8. ' Weg mit der Maus!
  9. Hide On 
  10. ' Zuerst entpacken wir den Hintergrund. Gr��e: 640x200x8.
  11. ' Der Bereich von (320,0)-(640,200) ist noch leer. 
  12. Unpack 10 To 0 : Screen Hide 
  13. ' Dann den Vordergrund. Gr��e: 640x200x8.
  14. Unpack 9 To 1 : Screen Hide 
  15. ' Jetzt kopieren wir den Background, damit er cyclic wird. 
  16. Screen Copy 0,0,0,320,200 To 0,320,0
  17. ' Nun mu� noch die Farbpalette in das erste Playfield kopiert werden.  
  18. For A=0 To 7
  19.   Screen 1 : C=Colour(A)
  20.   Screen 0 : Colour A+8,C
  21. Next 
  22. ' Damit der Dual Playfield Befehl funktioniert, m�ssen beide Screens 
  23. ' sichtbar sein. Um aber zu verhindern, da� die Screens aufblitzen,
  24. ' setzen wir die Palette von Screen 1 auf 0 (Screen 1 liegt vorne).  
  25. Screen 1
  26. For A=0 To 31 : Colour A,0 : Next 
  27. ' Sicherheitshalber werden nun schon die beiden Offsets auf unge-
  28. ' rade zahlen gesetzt, beide Screens angezeigt und dann mindestens 
  29. ' ein Vertical Bank gewartet (wichtig!). 
  30. Screen Offset 0,1,0
  31. Screen Offset 1,1,0
  32. Screen Show 0 : Screen Show 1
  33. Wait Vbl 
  34. ' Dual Playfield kann nun ohne Probleme gesetzt werden...
  35. ' Dabei m�ssen wir aber die Priorit�ten vertauschen... 
  36. Dual Playfield 0,1
  37. Dual Priority 1,0
  38. ' Variablen initialisieren und scrollen... 
  39. ' Beim Scrollen darf keine der X-Offsets ein Vielfaches von 16 betragen, 
  40. ' das f�hrt dazu, da� das X-Offset des anderen Screens auch auf ein
  41. ' Vielfaches von 16 beschnitten wird!
  42. SCRX1=1 : SCRX2=1
  43. SCRS1=2 : SCRS2=4
  44. Do 
  45.   Screen Offset 0,SCRX1,0
  46.   Screen Offset 1,SCRX2,0
  47.   Wait Vbl 
  48.   SCRX1=(SCRX1+SCRS1) mod 320
  49.   If SCRX2+SCRS2>320 or SCRX2+SCRS2<0 Then SCRS2=-SCRS2
  50.   Add SCRX2,SCRS2
  51. Loop 
  52. End 
  53. ' Ist doch gar nicht so schwer, wenn man die paar Einschr�nkungen beachtet!
  54. ' Gr��e und Ciao 
  55. '                  Chris